VBA操作Excel內容排序,用Sort函數對工作表內容排序 您所在的位置:网站首页 vba sort排序 VBA操作Excel內容排序,用Sort函數對工作表內容排序

VBA操作Excel內容排序,用Sort函數對工作表內容排序

#VBA操作Excel內容排序,用Sort函數對工作表內容排序| 来源: 网络整理| 查看: 265

今天有同學問到關於大批量Excel的Sheet如何簡化排序,但是網上的攻略比較混亂。因此,在這做一下示例。

需求:80頁sheet的Excel文檔,每頁的格式相同,基本內容如下,要求根據A列,升序排列。

代碼如下:

Option Explicit Sub MySort() Dim i As Integer Dim maxRow As Integer Dim sht As Worksheet '遍歷所有工作表 For i = 1 To ActiveWorkbook.Worksheets.Count Set sht = ActiveWorkbook.Worksheets(i) '激活當前工作表,Sort只能排序當前工作表 sht.Activate '獲取當前表最大行數 maxRow = sht.UsedRange.Rows.Count '選取範圍進行排序:這裏是選取a3:ao41(前兩行因爲是標題,所以不選);key是排序的列,這裏寫a3,表示以a列爲依據排序,最多可以寫3個key;order表示升序降序;Header表示是否有標題,由於我們沒選a1、a2,所以這裏寫no sht.Range("a3:ao" & maxRow).Sort key1:=sht.Range("a3"), order1:=xlAscending, Header:=xlNo Next i End Sub

 

注意,Vba的排序函數爲Sort,基本用法如下:

Range("待排序數據區域").Sort(Key1, Order1, Key2, Type, Order2, Key3, Order3,         Header, OrderCustom, MatchCase, Orientation, SortMethod,         DataOption1, DataOption2, DataOption3)其中各類型參數的意義如下: ① key1、key2、key3 這些key是排序的關鍵列(或行)的單元格地址,如 Range("A1") 實際只要選對列標題即可,對行數要求不敏感。

【行數要求不敏感】 即數據區域中任意行數都可以: Range("A1")、或Range("A2")、或Range("A1000")都可以。

【注意】 1. 一次Sort只能調用至多3個參數,沒有key4可以使用。 2. 至少使用1個參數即可,即key2、key3可以省去不用。

【引用方法】 1. 帶參數名引用,如: key1:=Range("G3")    帶參數名引用時 2. 參數位置引用,即按照上述Sort命令的參數順序直接應用,    如: Range("A1:I19").Sort key1:=Range("G3")  即第1位置參數即爲key1 ②  Order1、Order2、Order3    這些Order是排序的順序模式指定參數。即: A-Z升序、或Z-A降序     參數的模式名稱爲:           A-Z升序= xlAscending 或直接=1                Z-A降序= xlDescending 或直接=2   帶參數名引用時:   Order1:=xlAscending  或 Order1:= 1   參數位置引用時,緊跟key後面。(但注意key2和Order2之間要隔一個Type參數) ③  Header     即是否有標題行參數,一共有3個值:     Header:= xlGuess=0 或xlYes=1 或 xlNo=2     即=xlGuess、或=0時,工作表自己判斷      =xlYes、或=1時,強制第1行爲列標題,即第1行【不參與排序】      =xlNo、或=2時,強制沒有列標題。即第1行【也參與排序】   帶參數名引用時:    如: Header:= xlGuess    參數位置引用時,在第7個逗號之後。   (如果key只有1個時,要連續空6個逗號,    如:Range("A1:I19").Sort Range("A1"), 1, , , , , , 2 (order1之後連續寫6個逗號) ④ MatchCase 是否匹配大小寫     MatchCase:=False 、或=0 不區分大小寫     MatchCase:=True 、或=1 區分大小寫(Case Sensitive) ⑤ Orientation 排序方向     一般爲同一列中從上到下各行進行排序:Orientation:= xlTopToBottom 、或=1     如果是: 同一行中從左到右各列進行排序,則爲:Orientation:= xlLeftToRight、或=2 ⑥ SortMethod 排序方法     按拼音排序: SortMethod:= xlPinYin 、或=1 (Use phonetic info)     按筆畫排序: SortMethod:= xlStroke、或=2 ⑦ DataOption1 按數值或按文本排序     DataOption1:= xlSortNormal

 

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有